<?php
#PD 20-01-2012
# testowa klasa dodana do mojej aplikacji łądowana przez Zend_Autoloadera
# nazwa musi byc taka jak sciezka do klasy natomiast plik jak ostatni czlon nazwy tzn testowaOgolna.php

/**
 * Klasa testowo pokazujaca tranzakcje zagniezdzone.
 * @author damian
 *
 */
class Application_Model_TestowaOgolna extends Zend_Db_Adapter_Pdo_Mysql
{
	function testowaFunckcja() 
	{
		return 'testowa kalsa testowa metoda dziala';
	}
	
	/**
     * Current Transaction Level
     *
     * @var int
     */
    protected $_transactionLevel = 0;
 
    /**
     * Begin new DB transaction for connection
     * Zainicjonowanie tranzakcji jezlie level 0, level++
     *
     * @return App_Zend_Db_Adapter_Mysqli
     */
    public function beginTransaction()
    {
        if ( $this->_transactionLevel === 0 ) 
        {
            parent::beginTransaction();
        }
        $this->_transactionLevel++;
 
	return $this;
    }
 
    /**
     * Commit DB transaction
     * Jeżeli level 1 commit (jedna tranzakcja- tranzakcja glowna), level--
     *
     * @return App_Zend_Db_Adapter_Mysqli
     */
    public function commit()
    {
        if ( $this->_transactionLevel === 1 ) 
        {
            parent::commit();
        }
        $this->_transactionLevel--;
 
        return $this;
    }
 
    /**
     * Rollback DB transaction
     * Jeżeli level 1 rollback (glowna tranzakcja przerwanie), level--
     * @return App_Zend_Db_Adapter_Mysqli
     */
    public function rollback()
    {
        if ( $this->_transactionLevel === 1 ) {
            parent::rollback();
        }
        $this->_transactionLevel--;
 
        return $this;
    }
 
    /**
     * Get adapter transaction level state. Return 0 if all transactions are complete
     *
     * @return int
     */
    public function getTransactionLevel()
    {
        return $this->_transactionLevel;
    }
	
}
?>